<?php

namespace App\Http\Controllers\Home\Cart;

use App\Http\Controllers\Home\Cart\Api\CartApi;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Redis;


/**
 * @descr   作用:购物车控制类
 * @author  liuguansheng
 * Class CartController
 * @package App\Http\Controllers\Home\Cart
 */
class CartController extends Controller
{
	public $cartApi;//购物车Api实例化对象
	public function __construct()
	{
		//实例化cartApi
		$this->cartApi = new CartApi();
    }

	/**
	 * 购物车页面显示方法,用于显示购物车数据
	 * @return $this
	 */
	public function index()
	{
		//查询用户购物车信息购物车
		$info = $this->cartApi->showCart();
		if ( $info ) {
			// 显示购物车页面
			return view('/Home/Cart/cart')->with('data',$info);
		} else {
			return view('/Home/Cart/cart');
		}
    }

	/**
	 * 添加到购物车方法,用于添加商品到购物车
	 * @param Request $request
	 */
	public function addItem($gid, $pid, $itemNum)
	{
		//调用api的添加购物车方法
		$res = $this->cartApi->addToCart($gid, $pid, $itemNum);

		if ( $res ) {
		    return  redirect('/cart')->with('mess','添加成功');
		} else {
			return  redirect('/cart')->with('mess','添加失败');
		}

    }

	/**
	 * @descr 删除购物车商品
	 * @param Request $request
	 * @return string
	 */
	public function delItem(Request $request,$pid)
	{

		//调用api的删除购物车方法
		$res = $this->cartApi->rmCart($pid);
		if ( $res ) {
		    echo json_encode(1);
		} else {
			echo json_encode(0);
		}
		
	}

	/**
	 * @descr 清空购物车
	 * @return string
	 */
	public function flushCart()
	{
		//调用api的删除购物车方法
		$res = $this->cartApi->flushCart();
		if ( $res ) {
			return  '清空成功';
		} else {
			return '清空失败';
		}
	}
}
